Abstract Interpretation
Definition / 释义
抽象解释:一种用于静态程序分析的方法,通过把程序的“具体执行”(对真实输入逐步运行)映射到一个抽象域(如区间、符号集合、类型等)上进行“近似执行”,从而在不运行程序的情况下推断性质(例如变量取值范围、是否可能越界、是否可能出现空指针等)。它通常追求可靠性(soundness):宁可保守、把可能情况都包含进来,也尽量不漏掉真实可能发生的错误。
Pronunciation / 发音
/ˈæbstrækt ˌɪntərprɪˈteɪʃən/
Etymology / 词源
- abstract 源自拉丁语 abstractus,本义与“抽离、提取”相关,在这里指“从具体细节中抽取出更概括的表示”。
- interpretation 源自拉丁语 interpretatio,意为“解释、阐释”。在编程语境中也可指“解释执行”。
- 合在一起,abstract interpretation 字面意思就是“用抽象的方式来解释(执行)程序”,强调用简化但可证明可靠的模型来模拟程序行为。
Examples / 例句
Abstract interpretation helps us find potential bugs without running the program.
抽象解释可以帮助我们在不运行程序的情况下发现潜在缺陷。
Using abstract interpretation, the analyzer computed an over-approximation of all possible values of x, proving the loop cannot cause an array out-of-bounds error.
通过抽象解释,分析器计算出变量 x 所有可能取值的上近似,从而证明该循环不会导致数组越界错误。
Related Words / 相关词
Notable Works / 文学与著作中的出现(多见于学术著作)
- Patrick Cousot & Radhia Cousot, “Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs…”(1977):提出并奠定该方法的经典论文。
- Flemming Nielson, Hanne Riis Nielson, Chris Hankin, Principles of Program Analysis:多章系统讲解抽象解释与相关静态分析框架。